<!-- HTML header for doxygen 1.8.6-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<title>OpenCV: cv::ogl::Buffer Class Reference</title>
<link href="../../opencv.ico" rel="shortcut icon" type="image/x-icon" />
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<script type="text/javascript" src="../../tutorial-utils.js"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
//<![CDATA[
MathJax.Hub.Config(
{
  TeX: {
      Macros: {
          matTT: [ "\\[ \\left|\\begin{array}{ccc} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{array}\\right| \\]", 9],
          fork: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ \\end{array} \\right.", 4],
          forkthree: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ \\end{array} \\right.", 6],
          forkfour: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ #7 & \\mbox{#8}\\\\ \\end{array} \\right.", 8],
          vecthree: ["\\begin{bmatrix} #1\\\\ #2\\\\ #3 \\end{bmatrix}", 3],
          vecthreethree: ["\\begin{bmatrix} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{bmatrix}", 9],
          cameramatrix: ["#1 = \\begin{bmatrix} f_x & 0 & c_x\\\\ 0 & f_y & c_y\\\\ 0 & 0 & 1 \\end{bmatrix}", 1],
          distcoeffs: ["(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]]) \\text{ of 4, 5, 8, 12 or 14 elements}"],
          distcoeffsfisheye: ["(k_1, k_2, k_3, k_4)"],
          hdotsfor: ["\\dots", 1],
          mathbbm: ["\\mathbb{#1}", 1],
          bordermatrix: ["\\matrix{#1}", 1]
      }
  }
}
);
//]]>
</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
<link href="../../stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<!--#include virtual="/google-search.html"-->
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="../../opencv-logo-small.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">OpenCV
   &#160;<span id="projectnumber">4.5.2</span>
   </div>
   <div id="projectbrief">Open Source Computer Vision</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('../../',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="../../d2/d75/namespacecv.html">cv</a></li><li class="navelem"><a class="el" href="../../df/d60/namespacecv_1_1ogl.html">ogl</a></li><li class="navelem"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html">Buffer</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="../../d7/d24/classcv_1_1ogl_1_1Buffer-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">cv::ogl::Buffer Class Reference<div class="ingroups"><a class="el" href="../../d0/de1/group__core.html">Core functionality</a> &raquo; <a class="el" href="../../d2/d3c/group__core__opengl.html">OpenGL interoperability</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Smart pointer for OpenGL buffer object with reference counting.  
 <a href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#details">More...</a></p>

<p><code>#include &lt;opencv2/core/opengl.hpp&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a6b2a295dc840db8b6728db2f3a439d6e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a6b2a295dc840db8b6728db2f3a439d6e">Access</a> { <br />
&#160;&#160;<a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a6b2a295dc840db8b6728db2f3a439d6eaf1748d7175ce87c2b5b2be550bb7d4e6">READ_ONLY</a> = 0x88B8, 
<br />
&#160;&#160;<a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a6b2a295dc840db8b6728db2f3a439d6eadca1f60cf44ecc42163b5f03318abb77">WRITE_ONLY</a> = 0x88B9, 
<br />
&#160;&#160;<a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a6b2a295dc840db8b6728db2f3a439d6eaf254a35e198177eff9ecb1992ecf3e26">READ_WRITE</a> = 0x88BA
<br />
 }</td></tr>
<tr class="separator:a6b2a295dc840db8b6728db2f3a439d6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a830568a629457171cb07918537ec66be"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66be">Target</a> { <br />
&#160;&#160;<a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66bea62a4126c42da95e41facc4f84475f44a">ARRAY_BUFFER</a> = 0x8892, 
<br />
&#160;&#160;<a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66beae86acf739ab6ec3ccdc40db15366f672">ELEMENT_ARRAY_BUFFER</a> = 0x8893, 
<br />
&#160;&#160;<a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66bea04aec232cc3ac3070953ba669bee3a3a">PIXEL_PACK_BUFFER</a> = 0x88EB, 
<br />
&#160;&#160;<a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66bea882899bdc22e1c13618c294343d4d9dc">PIXEL_UNPACK_BUFFER</a> = 0x88EC
<br />
 }<tr class="memdesc:a830568a629457171cb07918537ec66be"><td class="mdescLeft">&#160;</td><td class="mdescRight">The target defines how you intend to use the buffer object.  <a href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66be">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:a830568a629457171cb07918537ec66be"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:af53dfd844f101cc0ba752bf6791890ac"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#af53dfd844f101cc0ba752bf6791890ac">Buffer</a> ()</td></tr>
<tr class="memdesc:af53dfd844f101cc0ba752bf6791890ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">The constructors.  <a href="#af53dfd844f101cc0ba752bf6791890ac">More...</a><br /></td></tr>
<tr class="separator:af53dfd844f101cc0ba752bf6791890ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94a62127a1690d9d2244463c88b0c200"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a94a62127a1690d9d2244463c88b0c200">Buffer</a> (int arows, int acols, int atype, unsigned int abufId, bool autoRelease=false)</td></tr>
<tr class="separator:a94a62127a1690d9d2244463c88b0c200"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1598ae7fd0b6f35dee834b8cc6b0e73e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a1598ae7fd0b6f35dee834b8cc6b0e73e">Buffer</a> (<a class="el" href="../../dc/d84/group__core__basic.html#ga346f563897249351a34549137c8532a0">Size</a> asize, int atype, unsigned int abufId, bool autoRelease=false)</td></tr>
<tr class="separator:a1598ae7fd0b6f35dee834b8cc6b0e73e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb20e60d0a89372f7403c04fcb5444ba"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#afb20e60d0a89372f7403c04fcb5444ba">Buffer</a> (int arows, int acols, int atype, <a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66be">Target</a> target=<a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66bea62a4126c42da95e41facc4f84475f44a">ARRAY_BUFFER</a>, bool autoRelease=false)</td></tr>
<tr class="separator:afb20e60d0a89372f7403c04fcb5444ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af981734a0b35b9bebf48b1edb65291b8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#af981734a0b35b9bebf48b1edb65291b8">Buffer</a> (<a class="el" href="../../dc/d84/group__core__basic.html#ga346f563897249351a34549137c8532a0">Size</a> asize, int atype, <a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66be">Target</a> target=<a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66bea62a4126c42da95e41facc4f84475f44a">ARRAY_BUFFER</a>, bool autoRelease=false)</td></tr>
<tr class="separator:af981734a0b35b9bebf48b1edb65291b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7fce522179bc8984c50a3c8b3de3554c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a7fce522179bc8984c50a3c8b3de3554c">Buffer</a> (<a class="el" href="../../dc/d84/group__core__basic.html#ga353a9de602fe76c709e12074a6f362ba">InputArray</a> arr, <a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66be">Target</a> target=<a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66bea62a4126c42da95e41facc4f84475f44a">ARRAY_BUFFER</a>, bool autoRelease=false)</td></tr>
<tr class="separator:a7fce522179bc8984c50a3c8b3de3554c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40fd03c02f051f780f518acb6cd9b407"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a40fd03c02f051f780f518acb6cd9b407">bind</a> (<a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66be">Target</a> target) const</td></tr>
<tr class="memdesc:a40fd03c02f051f780f518acb6cd9b407"><td class="mdescLeft">&#160;</td><td class="mdescRight">Binds OpenGL buffer to the specified buffer binding point.  <a href="#a40fd03c02f051f780f518acb6cd9b407">More...</a><br /></td></tr>
<tr class="separator:a40fd03c02f051f780f518acb6cd9b407"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade340daf96dbd0649ae55d75d2572b01"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#ade340daf96dbd0649ae55d75d2572b01">bufId</a> () const</td></tr>
<tr class="memdesc:ade340daf96dbd0649ae55d75d2572b01"><td class="mdescLeft">&#160;</td><td class="mdescRight">get OpenGL opject id  <a href="#ade340daf96dbd0649ae55d75d2572b01">More...</a><br /></td></tr>
<tr class="separator:ade340daf96dbd0649ae55d75d2572b01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad124040681b94e05fc9030b087f49ab1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#ad124040681b94e05fc9030b087f49ab1">channels</a> () const</td></tr>
<tr class="separator:ad124040681b94e05fc9030b087f49ab1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0c8b81f03de2d386bce302ccd9bd431"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html">Buffer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#aa0c8b81f03de2d386bce302ccd9bd431">clone</a> (<a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66be">Target</a> target=<a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66bea62a4126c42da95e41facc4f84475f44a">ARRAY_BUFFER</a>, bool autoRelease=false) const</td></tr>
<tr class="memdesc:aa0c8b81f03de2d386bce302ccd9bd431"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a full copy of the buffer object and the underlying data.  <a href="#aa0c8b81f03de2d386bce302ccd9bd431">More...</a><br /></td></tr>
<tr class="separator:aa0c8b81f03de2d386bce302ccd9bd431"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a66fc0bec98329378bdc5303654da5238"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a66fc0bec98329378bdc5303654da5238">cols</a> () const</td></tr>
<tr class="separator:a66fc0bec98329378bdc5303654da5238"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adac4c20b821703eba30e68e3bba511a4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#adac4c20b821703eba30e68e3bba511a4">copyFrom</a> (<a class="el" href="../../dc/d84/group__core__basic.html#ga353a9de602fe76c709e12074a6f362ba">InputArray</a> arr, <a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66be">Target</a> target=<a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66bea62a4126c42da95e41facc4f84475f44a">ARRAY_BUFFER</a>, bool autoRelease=false)</td></tr>
<tr class="memdesc:adac4c20b821703eba30e68e3bba511a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies from host/device memory to OpenGL buffer.  <a href="#adac4c20b821703eba30e68e3bba511a4">More...</a><br /></td></tr>
<tr class="separator:adac4c20b821703eba30e68e3bba511a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9a8b9910ae4f914faa7ad740e3d084f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#ae9a8b9910ae4f914faa7ad740e3d084f">copyFrom</a> (<a class="el" href="../../dc/d84/group__core__basic.html#ga353a9de602fe76c709e12074a6f362ba">InputArray</a> arr, <a class="el" href="../../d9/df3/classcv_1_1cuda_1_1Stream.html">cuda::Stream</a> &amp;stream, <a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66be">Target</a> target=<a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66bea62a4126c42da95e41facc4f84475f44a">ARRAY_BUFFER</a>, bool autoRelease=false)</td></tr>
<tr class="separator:ae9a8b9910ae4f914faa7ad740e3d084f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3aab3acc565ead059f4da0efb943db0a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a3aab3acc565ead059f4da0efb943db0a">copyTo</a> (<a class="el" href="../../dc/d84/group__core__basic.html#gaad17fda1d0f0d1ee069aebb1df2913c0">OutputArray</a> arr) const</td></tr>
<tr class="memdesc:a3aab3acc565ead059f4da0efb943db0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies from OpenGL buffer to host/device memory or another OpenGL buffer object.  <a href="#a3aab3acc565ead059f4da0efb943db0a">More...</a><br /></td></tr>
<tr class="separator:a3aab3acc565ead059f4da0efb943db0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a563a63b77bd1c01b1bed7ea7740391c1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a563a63b77bd1c01b1bed7ea7740391c1">copyTo</a> (<a class="el" href="../../dc/d84/group__core__basic.html#gaad17fda1d0f0d1ee069aebb1df2913c0">OutputArray</a> arr, <a class="el" href="../../d9/df3/classcv_1_1cuda_1_1Stream.html">cuda::Stream</a> &amp;stream) const</td></tr>
<tr class="separator:a563a63b77bd1c01b1bed7ea7740391c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b9eb33a14f929c8554b4444198a1550"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a1b9eb33a14f929c8554b4444198a1550">create</a> (int arows, int acols, int atype, <a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66be">Target</a> target=<a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66bea62a4126c42da95e41facc4f84475f44a">ARRAY_BUFFER</a>, bool autoRelease=false)</td></tr>
<tr class="memdesc:a1b9eb33a14f929c8554b4444198a1550"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates memory for <a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html" title="Smart pointer for OpenGL buffer object with reference counting. ">ogl::Buffer</a> object.  <a href="#a1b9eb33a14f929c8554b4444198a1550">More...</a><br /></td></tr>
<tr class="separator:a1b9eb33a14f929c8554b4444198a1550"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ff29b1f3609d41cc350e5d407ddb9b1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a1ff29b1f3609d41cc350e5d407ddb9b1">create</a> (<a class="el" href="../../dc/d84/group__core__basic.html#ga346f563897249351a34549137c8532a0">Size</a> asize, int atype, <a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66be">Target</a> target=<a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66bea62a4126c42da95e41facc4f84475f44a">ARRAY_BUFFER</a>, bool autoRelease=false)</td></tr>
<tr class="separator:a1ff29b1f3609d41cc350e5d407ddb9b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e9be9d9d7a99d1c12d1469ab7c35eee"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a4e9be9d9d7a99d1c12d1469ab7c35eee">depth</a> () const</td></tr>
<tr class="separator:a4e9be9d9d7a99d1c12d1469ab7c35eee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7865fed445e49726896502f25d77ca6c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a7865fed445e49726896502f25d77ca6c">elemSize</a> () const</td></tr>
<tr class="separator:a7865fed445e49726896502f25d77ca6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71e4454b2b0d3e1b4f29c958ab90f28d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a71e4454b2b0d3e1b4f29c958ab90f28d">elemSize1</a> () const</td></tr>
<tr class="separator:a71e4454b2b0d3e1b4f29c958ab90f28d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72643c086e437ab3b9f45483ab9efb1d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a72643c086e437ab3b9f45483ab9efb1d">empty</a> () const</td></tr>
<tr class="separator:a72643c086e437ab3b9f45483ab9efb1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57864bec2d9dbef4edf25ea018db71d9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d0/d60/classcv_1_1cuda_1_1GpuMat.html">cuda::GpuMat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a57864bec2d9dbef4edf25ea018db71d9">mapDevice</a> ()</td></tr>
<tr class="memdesc:a57864bec2d9dbef4edf25ea018db71d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">map to device memory (blocking)  <a href="#a57864bec2d9dbef4edf25ea018db71d9">More...</a><br /></td></tr>
<tr class="separator:a57864bec2d9dbef4edf25ea018db71d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abde1b6c518abefeee7cf878b066c65fb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d0/d60/classcv_1_1cuda_1_1GpuMat.html">cuda::GpuMat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#abde1b6c518abefeee7cf878b066c65fb">mapDevice</a> (<a class="el" href="../../d9/df3/classcv_1_1cuda_1_1Stream.html">cuda::Stream</a> &amp;stream)</td></tr>
<tr class="memdesc:abde1b6c518abefeee7cf878b066c65fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maps OpenGL buffer to CUDA device memory.  <a href="#abde1b6c518abefeee7cf878b066c65fb">More...</a><br /></td></tr>
<tr class="separator:abde1b6c518abefeee7cf878b066c65fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e14b8b56c501c5c90c79aca9c744d18"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a3e14b8b56c501c5c90c79aca9c744d18">mapHost</a> (<a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a6b2a295dc840db8b6728db2f3a439d6e">Access</a> access)</td></tr>
<tr class="memdesc:a3e14b8b56c501c5c90c79aca9c744d18"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maps OpenGL buffer to host memory.  <a href="#a3e14b8b56c501c5c90c79aca9c744d18">More...</a><br /></td></tr>
<tr class="separator:a3e14b8b56c501c5c90c79aca9c744d18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae8efb43bb0ece5deffc68308bb70b53"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#aae8efb43bb0ece5deffc68308bb70b53">release</a> ()</td></tr>
<tr class="memdesc:aae8efb43bb0ece5deffc68308bb70b53"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decrements the reference counter and destroys the buffer object if needed.  <a href="#aae8efb43bb0ece5deffc68308bb70b53">More...</a><br /></td></tr>
<tr class="separator:aae8efb43bb0ece5deffc68308bb70b53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4545b1d1ae73330ea6c84d42cf8b459"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#aa4545b1d1ae73330ea6c84d42cf8b459">rows</a> () const</td></tr>
<tr class="separator:aa4545b1d1ae73330ea6c84d42cf8b459"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff9abd9111dfb14686a788eaaa94770a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#aff9abd9111dfb14686a788eaaa94770a">setAutoRelease</a> (bool flag)</td></tr>
<tr class="memdesc:aff9abd9111dfb14686a788eaaa94770a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets auto release mode.  <a href="#aff9abd9111dfb14686a788eaaa94770a">More...</a><br /></td></tr>
<tr class="separator:aff9abd9111dfb14686a788eaaa94770a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af627f6025672dcd3f054667da63f6ae1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../dc/d84/group__core__basic.html#ga346f563897249351a34549137c8532a0">Size</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#af627f6025672dcd3f054667da63f6ae1">size</a> () const</td></tr>
<tr class="separator:af627f6025672dcd3f054667da63f6ae1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acdbc4c711bfbf0c8be705398e4ca583e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#acdbc4c711bfbf0c8be705398e4ca583e">type</a> () const</td></tr>
<tr class="separator:acdbc4c711bfbf0c8be705398e4ca583e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cf37f57379ac901a5dd661c47f074bb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a8cf37f57379ac901a5dd661c47f074bb">unmapDevice</a> ()</td></tr>
<tr class="separator:a8cf37f57379ac901a5dd661c47f074bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34f6eaf46283eed7e6e9d780419b772d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a34f6eaf46283eed7e6e9d780419b772d">unmapDevice</a> (<a class="el" href="../../d9/df3/classcv_1_1cuda_1_1Stream.html">cuda::Stream</a> &amp;stream)</td></tr>
<tr class="memdesc:a34f6eaf46283eed7e6e9d780419b772d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unmaps OpenGL buffer.  <a href="#a34f6eaf46283eed7e6e9d780419b772d">More...</a><br /></td></tr>
<tr class="separator:a34f6eaf46283eed7e6e9d780419b772d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86c5bdbf910b69d20773ac1228c2daf9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a86c5bdbf910b69d20773ac1228c2daf9">unmapHost</a> ()</td></tr>
<tr class="memdesc:a86c5bdbf910b69d20773ac1228c2daf9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unmaps OpenGL buffer.  <a href="#a86c5bdbf910b69d20773ac1228c2daf9">More...</a><br /></td></tr>
<tr class="separator:a86c5bdbf910b69d20773ac1228c2daf9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a89b3599430d2e7938997a8911b1d9408"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a89b3599430d2e7938997a8911b1d9408">unbind</a> (<a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66be">Target</a> target)</td></tr>
<tr class="memdesc:a89b3599430d2e7938997a8911b1d9408"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unbind any buffers from the specified binding point.  <a href="#a89b3599430d2e7938997a8911b1d9408">More...</a><br /></td></tr>
<tr class="separator:a89b3599430d2e7938997a8911b1d9408"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Smart pointer for OpenGL buffer object with reference counting. </p>
<p><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html" title="Smart pointer for OpenGL buffer object with reference counting. ">Buffer</a> Objects are OpenGL objects that store an array of unformatted memory allocated by the OpenGL context. These can be used to store vertex data, pixel data retrieved from images or the framebuffer, and a variety of other things.</p>
<p><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html" title="Smart pointer for OpenGL buffer object with reference counting. ">ogl::Buffer</a> has interface similar with <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">Mat</a> interface and represents 2D array memory.</p>
<p><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html" title="Smart pointer for OpenGL buffer object with reference counting. ">ogl::Buffer</a> supports memory transfers between host and device and also can be mapped to CUDA memory. </p>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="a6b2a295dc840db8b6728db2f3a439d6e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6b2a295dc840db8b6728db2f3a439d6e">&#9670;&nbsp;</a></span>Access</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a6b2a295dc840db8b6728db2f3a439d6e">cv::ogl::Buffer::Access</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a6b2a295dc840db8b6728db2f3a439d6eaf1748d7175ce87c2b5b2be550bb7d4e6"></a>READ_ONLY&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a6b2a295dc840db8b6728db2f3a439d6eadca1f60cf44ecc42163b5f03318abb77"></a>WRITE_ONLY&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a6b2a295dc840db8b6728db2f3a439d6eaf254a35e198177eff9ecb1992ecf3e26"></a>READ_WRITE&#160;</td><td class="fielddoc"></td></tr>
</table>

</div>
</div>
<a id="a830568a629457171cb07918537ec66be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a830568a629457171cb07918537ec66be">&#9670;&nbsp;</a></span>Target</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66be">cv::ogl::Buffer::Target</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The target defines how you intend to use the buffer object. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a830568a629457171cb07918537ec66bea62a4126c42da95e41facc4f84475f44a"></a>ARRAY_BUFFER&#160;</td><td class="fielddoc"><p>The buffer will be used as a source for vertex data. </p>
</td></tr>
<tr><td class="fieldname"><a id="a830568a629457171cb07918537ec66beae86acf739ab6ec3ccdc40db15366f672"></a>ELEMENT_ARRAY_BUFFER&#160;</td><td class="fielddoc"><p>The buffer will be used for indices (in glDrawElements, for example) </p>
</td></tr>
<tr><td class="fieldname"><a id="a830568a629457171cb07918537ec66bea04aec232cc3ac3070953ba669bee3a3a"></a>PIXEL_PACK_BUFFER&#160;</td><td class="fielddoc"><p>The buffer will be used for reading from OpenGL textures. </p>
</td></tr>
<tr><td class="fieldname"><a id="a830568a629457171cb07918537ec66bea882899bdc22e1c13618c294343d4d9dc"></a>PIXEL_UNPACK_BUFFER&#160;</td><td class="fielddoc"><p>The buffer will be used for writing to OpenGL textures. </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="af53dfd844f101cc0ba752bf6791890ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af53dfd844f101cc0ba752bf6791890ac">&#9670;&nbsp;</a></span>Buffer() <span class="overload">[1/6]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cv::ogl::Buffer::Buffer </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The constructors. </p>
<p>Creates empty <a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html" title="Smart pointer for OpenGL buffer object with reference counting. ">ogl::Buffer</a> object, creates <a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html" title="Smart pointer for OpenGL buffer object with reference counting. ">ogl::Buffer</a> object from existed buffer ( abufId parameter), allocates memory for <a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html" title="Smart pointer for OpenGL buffer object with reference counting. ">ogl::Buffer</a> object or copies from host/device memory. </p>

</div>
</div>
<a id="a94a62127a1690d9d2244463c88b0c200"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a94a62127a1690d9d2244463c88b0c200">&#9670;&nbsp;</a></span>Buffer() <span class="overload">[2/6]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cv::ogl::Buffer::Buffer </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>arows</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>acols</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>atype</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>abufId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>autoRelease</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">arows</td><td>Number of rows in a 2D array. </td></tr>
    <tr><td class="paramname">acols</td><td>Number of columns in a 2D array. </td></tr>
    <tr><td class="paramname">atype</td><td>Array type ( CV_8UC1, ..., CV_64FC4 ). See <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">Mat</a> for details. </td></tr>
    <tr><td class="paramname">abufId</td><td><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html" title="Smart pointer for OpenGL buffer object with reference counting. ">Buffer</a> object name. </td></tr>
    <tr><td class="paramname">autoRelease</td><td>Auto release mode (if true, release will be called in object's destructor). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a1598ae7fd0b6f35dee834b8cc6b0e73e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1598ae7fd0b6f35dee834b8cc6b0e73e">&#9670;&nbsp;</a></span>Buffer() <span class="overload">[3/6]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cv::ogl::Buffer::Buffer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga346f563897249351a34549137c8532a0">Size</a>&#160;</td>
          <td class="paramname"><em>asize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>atype</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>abufId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>autoRelease</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">asize</td><td>2D array size. </td></tr>
    <tr><td class="paramname">atype</td><td>Array type ( CV_8UC1, ..., CV_64FC4 ). See <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">Mat</a> for details. </td></tr>
    <tr><td class="paramname">abufId</td><td><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html" title="Smart pointer for OpenGL buffer object with reference counting. ">Buffer</a> object name. </td></tr>
    <tr><td class="paramname">autoRelease</td><td>Auto release mode (if true, release will be called in object's destructor). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="afb20e60d0a89372f7403c04fcb5444ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afb20e60d0a89372f7403c04fcb5444ba">&#9670;&nbsp;</a></span>Buffer() <span class="overload">[4/6]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cv::ogl::Buffer::Buffer </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>arows</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>acols</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>atype</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66be">Target</a>&#160;</td>
          <td class="paramname"><em>target</em> = <code><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66bea62a4126c42da95e41facc4f84475f44a">ARRAY_BUFFER</a></code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>autoRelease</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">arows</td><td>Number of rows in a 2D array. </td></tr>
    <tr><td class="paramname">acols</td><td>Number of columns in a 2D array. </td></tr>
    <tr><td class="paramname">atype</td><td>Array type ( CV_8UC1, ..., CV_64FC4 ). See <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">Mat</a> for details. </td></tr>
    <tr><td class="paramname">target</td><td><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html" title="Smart pointer for OpenGL buffer object with reference counting. ">Buffer</a> usage. See <a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66be" title="The target defines how you intend to use the buffer object. ">cv::ogl::Buffer::Target</a> . </td></tr>
    <tr><td class="paramname">autoRelease</td><td>Auto release mode (if true, release will be called in object's destructor). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="af981734a0b35b9bebf48b1edb65291b8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af981734a0b35b9bebf48b1edb65291b8">&#9670;&nbsp;</a></span>Buffer() <span class="overload">[5/6]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cv::ogl::Buffer::Buffer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga346f563897249351a34549137c8532a0">Size</a>&#160;</td>
          <td class="paramname"><em>asize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>atype</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66be">Target</a>&#160;</td>
          <td class="paramname"><em>target</em> = <code><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66bea62a4126c42da95e41facc4f84475f44a">ARRAY_BUFFER</a></code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>autoRelease</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">asize</td><td>2D array size. </td></tr>
    <tr><td class="paramname">atype</td><td>Array type ( CV_8UC1, ..., CV_64FC4 ). See <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">Mat</a> for details. </td></tr>
    <tr><td class="paramname">target</td><td><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html" title="Smart pointer for OpenGL buffer object with reference counting. ">Buffer</a> usage. See <a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66be" title="The target defines how you intend to use the buffer object. ">cv::ogl::Buffer::Target</a> . </td></tr>
    <tr><td class="paramname">autoRelease</td><td>Auto release mode (if true, release will be called in object's destructor). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a7fce522179bc8984c50a3c8b3de3554c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7fce522179bc8984c50a3c8b3de3554c">&#9670;&nbsp;</a></span>Buffer() <span class="overload">[6/6]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">cv::ogl::Buffer::Buffer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga353a9de602fe76c709e12074a6f362ba">InputArray</a>&#160;</td>
          <td class="paramname"><em>arr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66be">Target</a>&#160;</td>
          <td class="paramname"><em>target</em> = <code><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66bea62a4126c42da95e41facc4f84475f44a">ARRAY_BUFFER</a></code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>autoRelease</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">arr</td><td>Input array (host or device memory, it can be <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">Mat</a> , <a class="el" href="../../d0/d60/classcv_1_1cuda_1_1GpuMat.html" title="Base storage class for GPU memory with reference counting. ">cuda::GpuMat</a> or std::vector ). </td></tr>
    <tr><td class="paramname">target</td><td><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html" title="Smart pointer for OpenGL buffer object with reference counting. ">Buffer</a> usage. See <a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66be" title="The target defines how you intend to use the buffer object. ">cv::ogl::Buffer::Target</a> . </td></tr>
    <tr><td class="paramname">autoRelease</td><td>Auto release mode (if true, release will be called in object's destructor). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a40fd03c02f051f780f518acb6cd9b407"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a40fd03c02f051f780f518acb6cd9b407">&#9670;&nbsp;</a></span>bind()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::ogl::Buffer::bind </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66be">Target</a>&#160;</td>
          <td class="paramname"><em>target</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Binds OpenGL buffer to the specified buffer binding point. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">target</td><td>Binding point. See <a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66be" title="The target defines how you intend to use the buffer object. ">cv::ogl::Buffer::Target</a> . </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ade340daf96dbd0649ae55d75d2572b01"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ade340daf96dbd0649ae55d75d2572b01">&#9670;&nbsp;</a></span>bufId()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int cv::ogl::Buffer::bufId </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>get OpenGL opject id </p>

</div>
</div>
<a id="ad124040681b94e05fc9030b087f49ab1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad124040681b94e05fc9030b087f49ab1">&#9670;&nbsp;</a></span>channels()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cv::ogl::Buffer::channels </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="aa0c8b81f03de2d386bce302ccd9bd431"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa0c8b81f03de2d386bce302ccd9bd431">&#9670;&nbsp;</a></span>clone()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html">Buffer</a> cv::ogl::Buffer::clone </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66be">Target</a>&#160;</td>
          <td class="paramname"><em>target</em> = <code><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66bea62a4126c42da95e41facc4f84475f44a">ARRAY_BUFFER</a></code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>autoRelease</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Creates a full copy of the buffer object and the underlying data. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">target</td><td><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html" title="Smart pointer for OpenGL buffer object with reference counting. ">Buffer</a> usage for destination buffer. </td></tr>
    <tr><td class="paramname">autoRelease</td><td>Auto release mode for destination buffer. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a66fc0bec98329378bdc5303654da5238"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a66fc0bec98329378bdc5303654da5238">&#9670;&nbsp;</a></span>cols()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cv::ogl::Buffer::cols </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="adac4c20b821703eba30e68e3bba511a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adac4c20b821703eba30e68e3bba511a4">&#9670;&nbsp;</a></span>copyFrom() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::ogl::Buffer::copyFrom </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga353a9de602fe76c709e12074a6f362ba">InputArray</a>&#160;</td>
          <td class="paramname"><em>arr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66be">Target</a>&#160;</td>
          <td class="paramname"><em>target</em> = <code><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66bea62a4126c42da95e41facc4f84475f44a">ARRAY_BUFFER</a></code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>autoRelease</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copies from host/device memory to OpenGL buffer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">arr</td><td>Input array (host or device memory, it can be <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">Mat</a> , <a class="el" href="../../d0/d60/classcv_1_1cuda_1_1GpuMat.html" title="Base storage class for GPU memory with reference counting. ">cuda::GpuMat</a> or std::vector ). </td></tr>
    <tr><td class="paramname">target</td><td><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html" title="Smart pointer for OpenGL buffer object with reference counting. ">Buffer</a> usage. See <a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66be" title="The target defines how you intend to use the buffer object. ">cv::ogl::Buffer::Target</a> . </td></tr>
    <tr><td class="paramname">autoRelease</td><td>Auto release mode (if true, release will be called in object's destructor). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ae9a8b9910ae4f914faa7ad740e3d084f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae9a8b9910ae4f914faa7ad740e3d084f">&#9670;&nbsp;</a></span>copyFrom() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::ogl::Buffer::copyFrom </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga353a9de602fe76c709e12074a6f362ba">InputArray</a>&#160;</td>
          <td class="paramname"><em>arr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d9/df3/classcv_1_1cuda_1_1Stream.html">cuda::Stream</a> &amp;&#160;</td>
          <td class="paramname"><em>stream</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66be">Target</a>&#160;</td>
          <td class="paramname"><em>target</em> = <code><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66bea62a4126c42da95e41facc4f84475f44a">ARRAY_BUFFER</a></code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>autoRelease</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>

</div>
</div>
<a id="a3aab3acc565ead059f4da0efb943db0a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3aab3acc565ead059f4da0efb943db0a">&#9670;&nbsp;</a></span>copyTo() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::ogl::Buffer::copyTo </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#gaad17fda1d0f0d1ee069aebb1df2913c0">OutputArray</a>&#160;</td>
          <td class="paramname"><em>arr</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copies from OpenGL buffer to host/device memory or another OpenGL buffer object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">arr</td><td>Destination array (host or device memory, can be <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">Mat</a> , <a class="el" href="../../d0/d60/classcv_1_1cuda_1_1GpuMat.html" title="Base storage class for GPU memory with reference counting. ">cuda::GpuMat</a> , std::vector or <a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html" title="Smart pointer for OpenGL buffer object with reference counting. ">ogl::Buffer</a> ). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a563a63b77bd1c01b1bed7ea7740391c1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a563a63b77bd1c01b1bed7ea7740391c1">&#9670;&nbsp;</a></span>copyTo() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::ogl::Buffer::copyTo </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#gaad17fda1d0f0d1ee069aebb1df2913c0">OutputArray</a>&#160;</td>
          <td class="paramname"><em>arr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d9/df3/classcv_1_1cuda_1_1Stream.html">cuda::Stream</a> &amp;&#160;</td>
          <td class="paramname"><em>stream</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>

</div>
</div>
<a id="a1b9eb33a14f929c8554b4444198a1550"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1b9eb33a14f929c8554b4444198a1550">&#9670;&nbsp;</a></span>create() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::ogl::Buffer::create </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>arows</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>acols</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>atype</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66be">Target</a>&#160;</td>
          <td class="paramname"><em>target</em> = <code><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66bea62a4126c42da95e41facc4f84475f44a">ARRAY_BUFFER</a></code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>autoRelease</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Allocates memory for <a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html" title="Smart pointer for OpenGL buffer object with reference counting. ">ogl::Buffer</a> object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">arows</td><td>Number of rows in a 2D array. </td></tr>
    <tr><td class="paramname">acols</td><td>Number of columns in a 2D array. </td></tr>
    <tr><td class="paramname">atype</td><td>Array type ( CV_8UC1, ..., CV_64FC4 ). See <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">Mat</a> for details. </td></tr>
    <tr><td class="paramname">target</td><td><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html" title="Smart pointer for OpenGL buffer object with reference counting. ">Buffer</a> usage. See <a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66be" title="The target defines how you intend to use the buffer object. ">cv::ogl::Buffer::Target</a> . </td></tr>
    <tr><td class="paramname">autoRelease</td><td>Auto release mode (if true, release will be called in object's destructor). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a1ff29b1f3609d41cc350e5d407ddb9b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1ff29b1f3609d41cc350e5d407ddb9b1">&#9670;&nbsp;</a></span>create() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::ogl::Buffer::create </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga346f563897249351a34549137c8532a0">Size</a>&#160;</td>
          <td class="paramname"><em>asize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>atype</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66be">Target</a>&#160;</td>
          <td class="paramname"><em>target</em> = <code><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66bea62a4126c42da95e41facc4f84475f44a">ARRAY_BUFFER</a></code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>autoRelease</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">asize</td><td>2D array size. </td></tr>
    <tr><td class="paramname">atype</td><td>Array type ( CV_8UC1, ..., CV_64FC4 ). See <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">Mat</a> for details. </td></tr>
    <tr><td class="paramname">target</td><td><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html" title="Smart pointer for OpenGL buffer object with reference counting. ">Buffer</a> usage. See <a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66be" title="The target defines how you intend to use the buffer object. ">cv::ogl::Buffer::Target</a> . </td></tr>
    <tr><td class="paramname">autoRelease</td><td>Auto release mode (if true, release will be called in object's destructor). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a4e9be9d9d7a99d1c12d1469ab7c35eee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4e9be9d9d7a99d1c12d1469ab7c35eee">&#9670;&nbsp;</a></span>depth()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cv::ogl::Buffer::depth </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a7865fed445e49726896502f25d77ca6c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7865fed445e49726896502f25d77ca6c">&#9670;&nbsp;</a></span>elemSize()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cv::ogl::Buffer::elemSize </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a71e4454b2b0d3e1b4f29c958ab90f28d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a71e4454b2b0d3e1b4f29c958ab90f28d">&#9670;&nbsp;</a></span>elemSize1()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cv::ogl::Buffer::elemSize1 </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a72643c086e437ab3b9f45483ab9efb1d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a72643c086e437ab3b9f45483ab9efb1d">&#9670;&nbsp;</a></span>empty()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool cv::ogl::Buffer::empty </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a57864bec2d9dbef4edf25ea018db71d9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a57864bec2d9dbef4edf25ea018db71d9">&#9670;&nbsp;</a></span>mapDevice() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d0/d60/classcv_1_1cuda_1_1GpuMat.html">cuda::GpuMat</a> cv::ogl::Buffer::mapDevice </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>map to device memory (blocking) </p>

</div>
</div>
<a id="abde1b6c518abefeee7cf878b066c65fb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abde1b6c518abefeee7cf878b066c65fb">&#9670;&nbsp;</a></span>mapDevice() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d0/d60/classcv_1_1cuda_1_1GpuMat.html">cuda::GpuMat</a> cv::ogl::Buffer::mapDevice </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d9/df3/classcv_1_1cuda_1_1Stream.html">cuda::Stream</a> &amp;&#160;</td>
          <td class="paramname"><em>stream</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Maps OpenGL buffer to CUDA device memory. </p>
<p>This operation doesn't copy data. Several buffer objects can be mapped to CUDA memory at a time.</p>
<p>A mapped data store must be unmapped with <a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a8cf37f57379ac901a5dd661c47f074bb">ogl::Buffer::unmapDevice</a> before its buffer object is used. </p>

</div>
</div>
<a id="a3e14b8b56c501c5c90c79aca9c744d18"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3e14b8b56c501c5c90c79aca9c744d18">&#9670;&nbsp;</a></span>mapHost()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> cv::ogl::Buffer::mapHost </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a6b2a295dc840db8b6728db2f3a439d6e">Access</a>&#160;</td>
          <td class="paramname"><em>access</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Maps OpenGL buffer to host memory. </p>
<p>mapHost maps to the client's address space the entire data store of the buffer object. The data can then be directly read and/or written relative to the returned pointer, depending on the specified access policy.</p>
<p>A mapped data store must be unmapped with <a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a86c5bdbf910b69d20773ac1228c2daf9" title="Unmaps OpenGL buffer. ">ogl::Buffer::unmapHost</a> before its buffer object is used.</p>
<p>This operation can lead to memory transfers between host and device.</p>
<p>Only one buffer object can be mapped at a time. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">access</td><td>Access policy, indicating whether it will be possible to read from, write to, or both read from and write to the buffer object's mapped data store. The symbolic constant must be <a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a6b2a295dc840db8b6728db2f3a439d6eaf1748d7175ce87c2b5b2be550bb7d4e6">ogl::Buffer::READ_ONLY</a> , <a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a6b2a295dc840db8b6728db2f3a439d6eadca1f60cf44ecc42163b5f03318abb77">ogl::Buffer::WRITE_ONLY</a> or <a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a6b2a295dc840db8b6728db2f3a439d6eaf254a35e198177eff9ecb1992ecf3e26">ogl::Buffer::READ_WRITE</a> . </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="aae8efb43bb0ece5deffc68308bb70b53"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aae8efb43bb0ece5deffc68308bb70b53">&#9670;&nbsp;</a></span>release()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::ogl::Buffer::release </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Decrements the reference counter and destroys the buffer object if needed. </p>
<p>The function will call setAutoRelease(true) . </p>

</div>
</div>
<a id="aa4545b1d1ae73330ea6c84d42cf8b459"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa4545b1d1ae73330ea6c84d42cf8b459">&#9670;&nbsp;</a></span>rows()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cv::ogl::Buffer::rows </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="aff9abd9111dfb14686a788eaaa94770a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aff9abd9111dfb14686a788eaaa94770a">&#9670;&nbsp;</a></span>setAutoRelease()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::ogl::Buffer::setAutoRelease </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>flag</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets auto release mode. </p>
<p>The lifetime of the OpenGL object is tied to the lifetime of the context. If OpenGL context was bound to a window it could be released at any time (user can close a window). If object's destructor is called after destruction of the context it will cause an error. Thus <a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html" title="Smart pointer for OpenGL buffer object with reference counting. ">ogl::Buffer</a> doesn't destroy OpenGL object in destructor by default (all OpenGL resources will be released with OpenGL context). This function can force <a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html" title="Smart pointer for OpenGL buffer object with reference counting. ">ogl::Buffer</a> destructor to destroy OpenGL object. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">flag</td><td>Auto release mode (if true, release will be called in object's destructor). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="af627f6025672dcd3f054667da63f6ae1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af627f6025672dcd3f054667da63f6ae1">&#9670;&nbsp;</a></span>size()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../dc/d84/group__core__basic.html#ga346f563897249351a34549137c8532a0">Size</a> cv::ogl::Buffer::size </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="acdbc4c711bfbf0c8be705398e4ca583e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acdbc4c711bfbf0c8be705398e4ca583e">&#9670;&nbsp;</a></span>type()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cv::ogl::Buffer::type </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a89b3599430d2e7938997a8911b1d9408"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a89b3599430d2e7938997a8911b1d9408">&#9670;&nbsp;</a></span>unbind()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void cv::ogl::Buffer::unbind </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66be">Target</a>&#160;</td>
          <td class="paramname"><em>target</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Unbind any buffers from the specified binding point. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">target</td><td>Binding point. See <a class="el" href="../../d3/d68/classcv_1_1ogl_1_1Buffer.html#a830568a629457171cb07918537ec66be" title="The target defines how you intend to use the buffer object. ">cv::ogl::Buffer::Target</a> . </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a8cf37f57379ac901a5dd661c47f074bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8cf37f57379ac901a5dd661c47f074bb">&#9670;&nbsp;</a></span>unmapDevice() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::ogl::Buffer::unmapDevice </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a34f6eaf46283eed7e6e9d780419b772d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a34f6eaf46283eed7e6e9d780419b772d">&#9670;&nbsp;</a></span>unmapDevice() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::ogl::Buffer::unmapDevice </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d9/df3/classcv_1_1cuda_1_1Stream.html">cuda::Stream</a> &amp;&#160;</td>
          <td class="paramname"><em>stream</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Unmaps OpenGL buffer. </p>

</div>
</div>
<a id="a86c5bdbf910b69d20773ac1228c2daf9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a86c5bdbf910b69d20773ac1228c2daf9">&#9670;&nbsp;</a></span>unmapHost()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::ogl::Buffer::unmapHost </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Unmaps OpenGL buffer. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>opencv2/core/<a class="el" href="../../d4/db0/opengl_8hpp.html">opengl.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.8.6-->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Apr 2 2021 11:36:48 for OpenCV by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<script type="text/javascript">
//<![CDATA[
addTutorialsButtons();
//]]>
</script>
</body>
</html>
